package com.example.demo.mapper;

import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 管理员用户和管理员用户角色管理关系Mapper
 *
 * @author 叮当猫的百宝箱
 * @since 1.0
 */
public interface AdminUserRoleMapper {


    /**
     * 向管理员用户添加单个角色关联关系。
     *
     * @param adminUserId 管理员用户ID
     * @param adminRoleId 管理员角色ID
     * @return 受影响行数
     */
    int addAdminUserRole(@Param("adminUserId") Long adminUserId, @Param("adminRoleId") Long adminRoleId);

    /**
     * 向管理员用户添加多个角色关联关系。
     *
     * @param adminUserId  管理员用户ID
     * @param adminRoleIds 管理员角色ID列表
     * @return 受影响行数
     */
    int addAdminUserRoles(@Param("adminUserId") Long adminUserId, @Param("adminRoleIds") List<Long> adminRoleIds);

    /**
     * 删除管理员用户与单个角色的关联关系。
     *
     * @param adminUserId 管理员用户ID
     * @param adminRoleId 管理员角色ID
     * @return 受影响行数
     */
    int deleteAdminUserRole(@Param("adminUserId") Long adminUserId, @Param("adminRoleId") Long adminRoleId);

    /**
     * 删除管理员用户与多个角色的关联关系。
     *
     * @param adminUserId  管理员用户ID
     * @param adminRoleIds 管理员角色ID列表
     * @return 受影响行数
     */
    int deleteAdminUserRoles(@Param("adminUserId") Long adminUserId, @Param("adminRoleIds") List<Long> adminRoleIds);

}
